package com.icangya.service;

import com.alibaba.fastjson.JSONObject;
import com.icangya.domain.*;

import java.sql.Timestamp;
import java.util.List;

public interface IMoneyService {

    /**
     * 初始化用户广告金表
     * @param balance
     */
   void saveBalance(Balance balance);

    /**
     * 初始化用户佣金表
     * @param commission
     */
   void saveCommission(Commission commission);

    /**
     * 查询用户余额
     *
     * @param uid
     * @return
     */

    Balance getUserBalanceByUid(long  uid);

    //修改用户余额
    Boolean updateBalanceByOpenId(Balance balance);

    /**
     * 查询用户佣金
     *
     * @param openId
     * @return
     */

    Commission getUserCommissionyByOpenId(String  openId);

    //修改用户佣金
    boolean updateCommission(Commission commission);

 /**
  * 添加获取佣金记录
  * @param commissionRecord
  */
 void saveCommissionRecord(CommissionRecord commissionRecord);
    /**
     * 获取用户所有的支出记录
     * @param openId
     * @return
     */
    JSONObject getExpendRecord(String openId);

    /**
     * 获取用户获得佣金的记录
     * @param openId
     * @return
     */
    JSONObject getCommRecord(String openId,int startPage);

    /**
     * 获取用户获得佣金的记录
     * @param openId
     * @return
     */
    JSONObject getCommRecordByType(String openId, String type);
    /**
     * 获取用户的提现记录
     * @param openId
     * @return
     */
    JSONObject getCashRecord(String openId);

 /**
  * 获取用户的提现记录  分页查询
  * @param openId
  * @return
  */
 JSONObject getCashRecord(String openId,int startPage);


 /**
  * 用户获得广告金支出记录
  * @param openId
  * @return
  */
 JSONObject getExpendRecordMoney(String openId,int startPage);

 /**
  * 用户获得广告金充值记录
  * @param openId
  * @return
  */
 JSONObject getRechargeRecordMoney(String openId,int startPage);


 /**
  * 每天充值总金额
  * @return
  */
 Double getRechargeMoneyNow(Timestamp time);

 Double getCashMoneyNow(Timestamp time);

 /**
  * 一个时间段内系统的收入
  * @param startTime
  * @param endTime
  * @return
  */
  GainRecord  getGainRecordTime(Timestamp startTime,Timestamp endTime);

  void saveGainRecord(GainRecord gainRecord);

  JSONObject getGainRecordAll(int startPage);
    //添加提现记录
  void saveCashRegister(CashRegister cashRegister);

  //用户支出记录
//  void saveExpendRecord(ExpendRecord expendRecord);


    /**
     * 获取单个用户的充值记录
     * @param openId
     * @return
     */
    List getRechargeRecordByOpenId(String openId);

}
